#include "../log_local/logger.h"
// using namespace ns_log;

// 默认日志器的使用
void example1()
{
    default_debug("%s:%d", "DEBUG", 1);
    default_info("%s:%d", "INFO", 1);
    default_warning("%s:%d", "WARNING", 1);
    default_error("%s:%d", "ERROR", 1);
    default_fatal("%s:%d", "FATAL", 1);
}

// 构造日志器进行使用
void example2()
{
    ns_log::LoggerBuilder::ptr builder = std::make_shared<ns_log::LocalLoggerBuilder>();
    builder->buildLoggerName("local_logger");
    ns_log::Logger::ptr logger = builder->build();
    logger->debug("%s:%d", "DEBUG", 1);
    logger->info("%s:%d", "INFO", 1);
    logger->warning("%s:%d", "WARNING", 1);
    logger->error("%s:%d", "ERROR", 1);
    logger->fatal("%s:%d", "FATAL", 1);
}

// 获取全局日志器进行使用
void example3()
{
    ns_log::Logger::ptr logger = ns_log::getLogger("global_logger");
    logger->debug("%s:%d", "DEBUG", 1);
    logger->info("%s:%d", "INFO", 1);
    logger->warning("%s:%d", "WARNING", 1);
    logger->error("%s:%d", "ERROR", 1);
    logger->fatal("%s:%d", "FATAL", 1);
}

int main()
{
    ns_log::LoggerBuilder::ptr builder = std::make_shared<ns_log::GlobalLoggerBuilder>();
    builder->buildLoggerName("global_logger");
    builder->build();

    example1();
    std::cout << std::string(100, '-') << "\n";
    example2();
    std::cout << std::string(100, '-') << "\n";
    example3();
    return 0;
}
